﻿using IgrMensageiros.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DAO;
using MODELO;
using System.Data;


namespace BLL
{
    public class PermissaoBLL
    {

        #region "Declaração de variáveis"
        private static log4net.ILog log;
        PermissaoDAL permissaoDAL = new PermissaoDAL();
        #endregion

        public PermissaoBLL()
        {
            log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
            log4net.Config.XmlConfigurator.Configure();
        }

        public Boolean Gravar(Usuario pUsuario)
        {
            bool retorno = false;
            try
            {
                if (pUsuario.ID == 0)
                {
                    pUsuario.Senha = Criptografia.Criptografar(pUsuario.Senha);
                   
                   DataTable  lstUsuario = permissaoDAL.GetUsuario(pUsuario).Tables[0] ;
                   if (lstUsuario.Rows.Count == 0)
                   {
                       permissaoDAL.Gravar(pUsuario);
                       retorno = true;
                   }
                }
                else
                {
                    Alterar(pUsuario);
                    retorno = true;
                }

               return retorno;
            }
            catch (Exception ex)
            {
                log.Error(ex);
                throw;
            }
        }

        public void Deletar(int pID)
        {
            try
            {
                permissaoDAL.Deletar(pID);
            }
            catch (Exception ex)
            {
                log.Error(ex);
                throw;
            }
        }

        public void Alterar(Usuario pUsuario)
        {
            try
            {
                permissaoDAL.Alterar(pUsuario);
            }
            catch (Exception ex)
            {
                log.Error(ex);
                throw;
            }
        }

        public List<Usuario> Listar(Usuario pUsuario)
        {
            try
            {
                throw new NotImplementedException();
            }
            catch (Exception ex)
            {
                log.Error(ex);
                throw;
            }
        }
    }
}
